package yaml

import (
	"fmt"
	"github.com/spf13/viper" // 正确导入 Viper 包
)

func main() {
	// 设置配置文件的名字，不包括扩展名
	viper.SetConfigName("test")
	// 设置配置文件的类型
	viper.SetConfigType("yaml")
	// 添加配置文件的路径
	viper.AddConfigPath("./config")
	// 寻找并读取配置文件
	if err := viper.ReadInConfig(); err != nil {
		panic(fmt.Errorf("fatal error config file: %w", err))
	}

	// 访问整个 mysql 配置部分（通常返回 map[string]interface{}）
	mysqlConfig := viper.Get("mysql")
	fmt.Println(mysqlConfig) // 输出: map[port:3306 url:127.0.0.1]

	// 直接访问 mysql 下的 url 字段
	url := viper.GetString("mysql.url")
	fmt.Println(url) // 输出: 127.0.0.1

	// 注意：如果你需要更复杂的类型断言，可以这样做
	// urlInterface := viper.Get("mysql.url")
	// if urlStr, ok := urlInterface.(string); ok {
	//     fmt.Println(urlStr)
	// }
}
